/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package br.jm.financeiro.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.Size;

/**
 *
 * @author joao
 */
@Entity
@Table(name = "relatorio_financeiro", catalog = "salao", schema = "public")
@NamedQueries({
    @NamedQuery(name = "RelatorioFinanceiro.findAll", query = "SELECT r FROM RelatorioFinanceiro r"),
    @NamedQuery(name = "RelatorioFinanceiro.findByIdFinanceiro", query = "SELECT r FROM RelatorioFinanceiro r WHERE r.idFinanceiro = :idFinanceiro")})
public class RelatorioFinanceiro implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "id_financeiro", nullable = false)
    private Integer idFinanceiro;
    @Size(max = 100)
    @Column(name = "dsc_fantasia", length = 100)
    private String dscFantasia;
    @Size(max = 1)
    @Column(name = "tip_conta", length = 1)
    private String tipConta;
    @Size(max = 1)
    @Column(name = "tip_documento", length = 1)
    private String tipDocumento;
    @Column(name = "dat_vecto_inicio")
    @Temporal(TemporalType.DATE)
    private Date datVectoInicio;
    @Column(name = "dat_vencto_fim")
    @Temporal(TemporalType.DATE)
    private Date datVenctoFim;
    @Column(name = "dat_pagto_inicio")
    @Temporal(TemporalType.DATE)
    private Date datPagtoInicio;
    @Column(name = "dat_pagto_fim")
    @Temporal(TemporalType.DATE)
    private Date datPagtoFim;
    @Column(name = "tip_total")
    private Integer tipTotal;
    @Column(name = "vlr_imposto", precision = 18, scale = 2)
    private BigDecimal vlrImposto;
    @Column(name = "vlr_documento", precision = 18, scale = 2)
    private BigDecimal vlrDocumento;
    @Column(name = "vlr_pago", precision = 18, scale = 2)
    private BigDecimal vlrPago;
    @Column(name = "vlr_recebido", precision = 18, scale = 2)
    private BigDecimal vlrRecebido;
    @Column(name = "vlr_juros", precision = 18, scale = 2)
    private BigDecimal vlrJuros;
    @Column(name = "vlr_multa", precision = 18, scale = 2)
    private BigDecimal vlrMulta;
    @Size(max = 300)
    @Column(name = "dsc_documento", length = 200)
    private String dscDocumento;
    @Size(max = 300)
    @Column(name = "num_documento", length = 300)
    private String numDocumento;
    @Column(name = "dat_vencto")
    @Temporal(TemporalType.DATE)
    private Date datVencto;
    @Column(name = "dat_pagto")
    @Temporal(TemporalType.DATE)
    private Date datPagto;
    @Column(name = "dat_doc")
    @Temporal(TemporalType.DATE)
    private Date datDoc;
    @Column(name = "dat_emissao")
    @Temporal(TemporalType.DATE)
    private Date datEmissao;
    @Size(max = 200)
    @Column(name = "num_os", length = 200, nullable = true)
    private String numOs;
    @Column(name = "cor_status", length = 20)
    private String corStatus;
    @Column(name = "cor_letra", length = 20)
    private String corLetra;
    @JoinColumn(name = "id_custo", referencedColumnName = "id_custo")
    @ManyToOne
    private CentroCusto idCusto;
    @JoinColumn(name = "id_cliente", referencedColumnName = "id_cliente")
    @ManyToOne
    private Cliente idCliente;
    @JoinColumn(name = "id_fornecedor", referencedColumnName = "id_fornecedor")
    @ManyToOne
    private Fornecedor idFornecedor;
    @JoinColumn(name = "id_empreendimento", referencedColumnName = "id_empreendimento")
    @ManyToOne
    private Empreendimento idEmpreendimento;
    @JoinColumn(name = "id_usuario", referencedColumnName = "id_usuario")
    @ManyToOne
    private Usuario idUsuario;

    public RelatorioFinanceiro() {
    }

    public RelatorioFinanceiro(Integer idFinanceiro) {
        this.idFinanceiro = idFinanceiro;
    }

    public Integer getIdFinanceiro() {
        return idFinanceiro;
    }

    public void setIdFinanceiro(Integer idFinanceiro) {
        this.idFinanceiro = idFinanceiro;
    }

    public String getDscFantasia() {
        return dscFantasia;
    }

    public void setDscFantasia(String dscFantasia) {
        this.dscFantasia = dscFantasia;
    }

    public String getTipConta() {
        return tipConta;
    }

    public void setTipConta(String tipConta) {
        this.tipConta = tipConta;
    }

    public String getTipDocumento() {
        return tipDocumento;
    }

    public void setTipDocumento(String tipDocumento) {
        this.tipDocumento = tipDocumento;
    }

    public Date getDatVectoInicio() {
        return datVectoInicio;
    }

    public void setDatVectoInicio(Date datVectoInicio) {
        this.datVectoInicio = datVectoInicio;
    }

    public Date getDatVenctoFim() {
        return datVenctoFim;
    }

    public void setDatVenctoFim(Date datVenctoFim) {
        this.datVenctoFim = datVenctoFim;
    }

    public Date getDatPagtoInicio() {
        return datPagtoInicio;
    }

    public void setDatPagtoInicio(Date datPagtoInicio) {
        this.datPagtoInicio = datPagtoInicio;
    }

    public Date getDatPagtoFim() {
        return datPagtoFim;
    }

    public void setDatPagtoFim(Date datPagtoFim) {
        this.datPagtoFim = datPagtoFim;
    }

    public Integer getTipTotal() {
        return tipTotal;
    }

    public void setTipTotal(Integer tipTotal) {
        this.tipTotal = tipTotal;
    }

    public BigDecimal getVlrDocumento() {
        return vlrDocumento;
    }

    public void setVlrDocumento(BigDecimal vlrDocumento) {
        this.vlrDocumento = vlrDocumento;
    }

    public BigDecimal getVlrRecebido() {
        return vlrRecebido;
    }

    public void setVlrRecebido(BigDecimal vlrRecebido) {
        this.vlrRecebido = vlrRecebido;
    }

    public String getDscDocumento() {
        return dscDocumento;
    }

    public void setDscDocumento(String dscDocumento) {
        this.dscDocumento = dscDocumento;
    }

    public CentroCusto getIdCusto() {
        return idCusto;
    }

    public void setIdCusto(CentroCusto idCusto) {
        this.idCusto = idCusto;
    }

    public Cliente getIdCliente() {
        return idCliente;
    }

    public void setIdCliente(Cliente idCliente) {
        this.idCliente = idCliente;
    }

    public Fornecedor getIdFornecedor() {
        return idFornecedor;
    }

    public void setIdFornecedor(Fornecedor idFornecedor) {
        this.idFornecedor = idFornecedor;
    }

    public Date getDatVencto() {
        return datVencto;
    }

    public void setDatVencto(Date datVencto) {
        this.datVencto = datVencto;
    }

    public Date getDatPagto() {
        return datPagto;
    }

    public void setDatPagto(Date datPagto) {
        this.datPagto = datPagto;
    }

    public Empreendimento getIdEmpreendimento() {
        return idEmpreendimento;
    }

    public void setIdEmpreendimento(Empreendimento idEmpreendimento) {
        this.idEmpreendimento = idEmpreendimento;
    }

    public Date getDatDoc() {
        return datDoc;
    }

    public void setDatDoc(Date datDoc) {
        this.datDoc = datDoc;
    }

    public Date getDatEmissao() {
        return datEmissao;
    }

    public void setDatEmissao(Date datEmissao) {
        this.datEmissao = datEmissao;
    }

    public String getNumDocumento() {
        return numDocumento;
    }

    public void setNumDocumento(String numDocumento) {
        this.numDocumento = numDocumento;
    }

    public String getNumOs() {
        return numOs;
    }

    public void setNumOs(String numOs) {
        this.numOs = numOs;
    }

    public BigDecimal getVlrImposto() {
        return vlrImposto;
    }

    public void setVlrImposto(BigDecimal vlrImposto) {
        this.vlrImposto = vlrImposto;
    }

    public BigDecimal getVlrPago() {
        return vlrPago;
    }

    public void setVlrPago(BigDecimal vlrPago) {
        this.vlrPago = vlrPago;
    }

    public Usuario getIdUsuario() {
        return idUsuario;
    }

    public void setIdUsuario(Usuario idUsuario) {
        this.idUsuario = idUsuario;
    }

    public String getCorStatus() {
        return corStatus;
    }

    public void setCorStatus(String corStatus) {
        this.corStatus = corStatus;
    }

    public String getCorLetra() {
        return corLetra;
    }

    public void setCorLetra(String corLetra) {
        this.corLetra = corLetra;
    }

    public BigDecimal getVlrJuros() {
        return vlrJuros;
    }

    public void setVlrJuros(BigDecimal vlrJuros) {
        this.vlrJuros = vlrJuros;
    }

    public BigDecimal getVlrMulta() {
        return vlrMulta;
    }

    public void setVlrMulta(BigDecimal vlrMulta) {
        this.vlrMulta = vlrMulta;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idFinanceiro != null ? idFinanceiro.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof RelatorioFinanceiro)) {
            return false;
        }
        RelatorioFinanceiro other = (RelatorioFinanceiro) object;
        return !((this.idFinanceiro == null && other.idFinanceiro != null) || (this.idFinanceiro != null && !this.idFinanceiro.equals(other.idFinanceiro)));
    }

    @Override
    public String toString() {
        return "br.jm.financeiro.entity.RelatorioFinanceiro[ idFinanceiro=" + idFinanceiro + " ]";
    }
    
}
